// 
// $Rev:: 3             $:  Revision of last commit
// $Author:: rvhaverm@g#$:  Author of last commit
// $Date:: 2010-07-25 1#$:  Date of last commit
// 
package agents.interfaces;



public interface IAgentSystem
{
    /** This method will dispatch a given agent to the given destination.
     * 
     * @param agent the IAgent representing the the agent that is about to
     * move.
     * @param destination the String representing the agent's locaton.
     * @return the IAgent reference to the remote agent.
     */  
    public abstract IAgentProxy dispatch(IAgentProxy agent, String destination);
    
    /** This method send a message to an agent.
     * 
     * @param agent the agent being sent to
     * @param m the message being sent
     * @return a possible reply on the message being sent.
     */
    public abstract Object sendMessage(IAgentProxy agent, IMessage m);
}
